【タイムアタック・チャレンジ】1時間のバイブコーディングでどこまでWebアプリを作れるのか!?

はじめに

こんにちは!山内です。

最近いろんな所で話題となっている「バイブコーディング(Vibe Coding)」、皆さんはもう試しましたか?
「バイブコーディング」とは、AIに細かい指示を出すのではなく、自然言語でふわっとした要望(Vibe)を伝え、AIと阿吽の呼吸でコーディングを進めていくスタイルのことです。

今回はこの手法を使って、「Git学習Webアプリ」の開発にチャレンジしました。
きっかけは、現場でシステムエンジニアの新人さんと接する中で「Gitの概念、特にGit-flowやファイルの状態遷移(Staging/Unstaging)の理解につまずいているな」と感じることが多かったからです。

もちろん、世の中には優れた学習サービスがたくさんあります。しかし、実際に新人教育に使ってみると、「Git-flowの運用ルール」と「ファイル単位の状態遷移」をセットで直感的に学べるものとなると、意外と見当たらないんですよね。

「ブランチを切るタイミングで、ファイルの状態がどうなっているか見せたい」「もっと現場の運用に即した可視化がほしい…」
そんな、既存サービスでは微妙に”痒い所に手が届かない”もどかしさがずっとありました。

「ないなら作ってしまおう。でも時間はかけたくない」

そこで今回は、制限時間1時間という縛りを設け、バイブコーディングでゼロからAWS環境へのデプロイまでをどこまで進められるか検証してみました!

※画面やバージョン情報は執筆時点(2025年12月12日)のものです。


 

今回の環境と前提

今回は「思い立ったらすぐ開発」というテーマなので、PCにすでにインストール済みのツール類をフル活用します。

<前提>

  • パッと使える生成AIサービスおよびAWS環境が手元にある状態でスタート
  • IDE(VSCode)や生成AIサービス、各種言語やコマンド(AWS CLIなど)は作業PCにインストール済み
  • WSL環境にて開発

<バージョン情報>

  • VSCode:v1.107.0
  • Gemini Pro:v3(思考モード)
  • Kiro CLI:v1.22.0
  • OpenAI:ChatGPT 5.2
  • AWS CLI:aws-cli/2.31.22

 


 

チャレンジ開始!実績タイムライン

先に結果が気になる方は「おわりに」のすぐ上あたりを読んでください!
ここからは、Gemini(要件定義・UI)とKiro CLI(実装・デプロイ)をどう使い分けたか、実際のプロンプトと共に振り返ります。
では、よーい、スタート!

1. 【Gemini】仕様整理(スタート ~ 09:20)

まずはGemini Pro v3(思考モード)を使って、作りたいアプリのアイデアを壁打ちします。
「こんな課題感があるんだけど、どういう仕様が良い?」と、まさにVibe(雰囲気)を伝えます。

<プロンプト#1-1>

<プロンプト#1-1の応答> ※抜粋

Geminiからの提案は非常に具体的でした。
「Working Tree」「Index」「Repository」のエリアを可視化することや、コマンド入力とGUI操作のハイブリッドなどを提案してくれました。

応答を見ていて、さらに学習効果を高めるために「レベルデザイン」の概念を導入することを思い付きました。

<プロンプト#1-2>

これに対しGeminiは、次の構成案を返してくれました。また、技術的な構成として「Gitエンジンはブラウザ(JS)でシミュレーションする」というアーキテクチャもここで決定しました。
壁打ちしていく中で、今回は検証の意味合いも強く、「リッチなGitエンジンは不要」という結論に至ったためです。

<プロンプト#1-2の応答> ※抜粋

念のため、モック作成にあたって考慮不足な点がないかを聞いてみました。
結果、「ない」とのことだったのでこれにて仕様整理は完了としました。
 
<プロンプト#1-3>

ここまで9分20秒、もう1/6を使ってしまいました。果たして間に合うのでしょうか…!?

 

2. 【Gemini】モック作成(09:20 ~ 24:06)

要件が見えたので、次はUIのイメージを固めます。
ここからはGeminiのCanvas機能を使いました。

<プロンプト#2-1>

<プロンプト#2-1の応答>
 
この時点でかなり良い感じのモックを作ってくれました!
ただ、まだ盛り込みたい要素があったのと、基本的なGit操作系で漏れがないか心配だったので追加指示を出します。
 

<プロンプト#2-2>

<プロンプト#2-2の応答>

そういえば、新人は「クローン」の時点でイメージが付きづらそうにしていました。

リモートとローカルの区別をしっかりつけてほしいので、追加してもらいます。
また、まとめて1つの問題とするより、各コマンドを1つずつステップアップできるように問題として扱ってもらえるようにします。
他にも色々と追加指示を出して都度モックを修正してもらいました。

<プロンプト#2-3>

<プロンプト#2-3の応答>
 

かなりこちらの希望通りになってきました!
ただ、結構時間をかけてしまいましたね…。この先不安です、頑張らないと!

 

3. 【Gemini/OpenAI】仕様書作成&整形(24:06 ~ 25:56)

モックができたら、Kiro CLIで実装するための仕様書を出力してもらいます。
Geminiの回答がマークダウン記法だと自動ハイライトされてしまったため、ここで一旦、ChatGPT 5.2にスイッチし、Geminiが出力したテキストをKiro CLIが読み込める形式のMarkdown仕様書に整形させました。
複数のAIを用途に合わせて使い分けるのも、バイブコーディングの”ミソ”ですね。

<プロンプト#3-1> ※Geminiへ

<プロンプト#3-2> ※ChatGPTへ

<プロンプト#3-2の応答>

ここまででもう約半分が過ぎました…!
本当にデプロイまで達成できるのでしょうか…。

 

4. 【Kiro CLI】フロントエンド実装(25:56 ~ 44:35)

仕様が固まったので、ここからは実装パートです。
GeminiとChatGPTが出力した仕様書(SPEC.md)とモックアップ(mock.tsx)を、Kiro CLIに読み込ませます。

<プロンプト#4-1>

<プロンプト#4-1の応答>

 
おー!ほぼモックそのままでViteのアプリが構築されていますね。
Kiro CLIがバーッとReact + TypeScript + Vite + Tailwind CSSのプロジェクト構成を作成し、開発サーバーを起動してくれました。
 
ただ、途中私の環境が原因でライブラリのインストールやビルドに非常に時間がかかり、ここで20分くらい使ってしまいました。
やばい…!間に合え…!!
 

5. 【Kiro CLI】バックエンド実装(44:35 ~ 50:22)

ここが今回のハイライトです。
フロントエンドは動きましたが、学習データを保存するためのバックエンドが必要です。ここも「Vibe」で依頼します。

<プロンプト#5-1>

<プロンプト#5-1の応答>

Kiro CLIがソースコードを分析し、「ユーザー進捗管理」「セッション状態の永続化」「学習履歴・ログ」の3つが必要だと提案してくれました。
個人的に、問題もマスタテーブルとして管理したかったので、追加で聞いてみました。

<プロンプト#5-2>

<プロンプト#5-2の応答>

提案内容に合意したので、そのままAWS CDKでの構築を依頼します。

<プロンプト#5-3>

<プロンプト#5-3の応答>

Kiro CLIから認証方式やDBの種類についていくつか質問が来たので適宜回答し、Lambdaの実装へ進みます。

<プロンプト#5-4>

<プロンプト#5-4の応答>

DB定義やAPI一覧も一緒に検討していたからか、比較的スムーズに実装してくれました。
あと10分、行けるぞ!
 

6. 【Kiro CLI】バックエンドのデプロイ(50:22 ~ 53:17)

AWS CDKを使ってインフラをデプロイします。

<プロンプト#6-1> ※5-4の応答に対して

<プロンプト#6-1の応答>

これで、DynamoDBテーブル5つ、Lambda関数4つ、API Gatewayが自動的にデプロイされました。
応答は数秒だったので、実質的にはCloudFormationの稼働時間くらいしかかかっていません。
このペースであれば行けるか!?

 

7. 【Kiro CLI】データ投入・フロント統合・デプロイ(53:17 ~ ??:??)

残り時間約7分!
テストデータを入れ、フロントエンドと結合して公開します。ラストスパート!

<プロンプト#7-1>

<プロンプト#7-1の応答>

APIの動作は問題なさそうなので、フロントエンドと統合します。

<プロンプト#7-2>

<プロンプト#7-2の応答>

ここでReact側のコードが書き換えられ、API Gatewayのエンドポイントと接続されました。
ブラウザをリロードすると、ユーザーの進捗がDynamoDBに保存されるようになり、本格的なWebアプリの挙動になりました。

最後はS3 + CloudFrontへのデプロイです。

<プロンプト#7-3>

<プロンプト#7-3の応答>

Kiro CLIがビルドを実行し、S3へのアップロードとCloudFrontのキャッシュ無効化までを自動で行いました。払い出されたURLにアクセスすると…無事、アプリが動いています!

   

 

果たしてタイムは…!?
58分11秒!ギリギリ1時間切りです。

 


 

おわりに

今回は「バイブコーディング」でGit学習アプリの1時間タイムアタック開発チャレンジをやってみました。

感想としては、「作りたいもののイメージ(Vibe)さえ明確なら、実装コストは劇的に下がる」ということです。
特に以下の点が「ミソ」でした。

  1. Geminiの思考モード: 「初級・中級・上級」といったレベルデザインや、「Gitのシミュレーションロジック」などの設計部分を丸投げできた。
  2. Kiro CLIのインフラ構築力: Reactのコードから必要なAPIを逆算し、CDKのコードを書いてデプロイまで自律的に行うスピード感が凄まじかった。

これなら、新人の理解度に合わせて「次はRebaseの練習モードを追加しよう」といった改善もすぐに回せそうです。
皆さんもぜひ、業務の課題解決にバイブコーディングを取り入れてみてください!

以上、参考になれば幸いです。

お問い合わせ先

執筆者プロフィール

Yamauchi Kentaro
Yamauchi Kentarotdi デジタルイノベーション技術部
社内の開発プロジェクトの技術支援や、Javaにおける社内標準フレームワークの開発を担当しています。Spring BootとTDDに手を出しつつ、LINE Botとかもいじったりしています。最近はマイクロサービスを勉強しつつ、クラウドアプリケーションを開発できるエンジニアの育成にも力を入れてます!

関連記事